在前一章中,我們介紹了 CFB 與 OFB 模式。今天討論的 CTR(Counter Mode) 與 GCM(Galois/Counter Mode) 則是現代密碼學工程中最核心、最廣泛採用的兩種模式。
在 CTR 模式下,加密引擎輸出的是「金鑰流(Keystream)」。此處加密引擎加密的對象不是明文資料,而是一個遞增的「計數器數字」。
GCM 是現代安全性最高的 AEAD(認證加密) 模式。在 GCM 模式下,AES 輸出的同樣是「金鑰流(Keystream)」,但操作模式在產出密文後,還必透過GHASH (Galois Hash)認證算法(雜湊函數)計算防篡改的「認證標籤(Auth Tag)」。什麼是GHASH呢?簡單的說就是結合金鑰的雜湊函數,必須有同一把金要與同樣的資料才能產生一樣的雜湊值,關於**AEAD(認證加密)**我們會在Day20在特別拿出來說,這邊專注GCM的流程即可。
GCM 結合了 CTR 模式加密 與基於伽羅瓦體的 GHASH 認證算法:
PCLMULQDQ),計算速度極快。